hxt-9.3.1.15: A collection of tools for processing XML with Haskell.

Copyright | Copyright (C) 2010 Uwe Schmidt
License | MIT
Maintainer | Uwe Schmidt (uwe@fh-wedel.de)
Stability | stable
Portability | portable
Safe Haskell | None
Language | Haskell98

Text.XML.HXT.Arrow.XmlState.ErrorHandling

Description

the basic state arrows for XML processing

A state is needed for global processing options, like encoding options, document base URI, trace levels and error message handling

The state is separated into a user defined state and a system state. The system state contains variables for error message handling, for tracing, for the document base for accessing XML documents with relative references, e.g. DTDs, and a global key value store. This assoc list has strings as keys and lists of XmlTrees as values. It is used to store arbitrary XML and text values, e.g. user defined global options.

The user defined part of the store is in the default case empty, defined as (). It can be extended with an arbitray data type

Synopsis

- changeErrorStatus :: (Int -> Int -> Int) -> IOStateArrow s Int Int
- clearErrStatus :: IOStateArrow s b b
- setErrStatus :: IOStateArrow s Int Int
- getErrStatus :: IOStateArrow s XmlTree Int
- setErrMsgStatus :: IOStateArrow s XmlTree XmlTree
- setErrorMsgHandler :: Bool -> (String -> IO ()) -> IOStateArrow s b b
- sysErrorMsg :: IOStateArrow s XmlTree XmlTree
- errorMsgStderr :: IOStateArrow s b b
- errorMsgCollect :: IOStateArrow s b b
- errorMsgStderrAndCollect :: IOStateArrow s b b
- errorMsgIgnore :: IOStateArrow s b b
- getErrorMessages :: IOStateArrow s b XmlTree
- addToErrorMsgList :: IOStateArrow s XmlTree XmlTree
- filterErrorMsg :: IOStateArrow s XmlTree XmlTree
- issueWarn :: String -> IOStateArrow s b b
- issueErr :: String -> IOStateArrow s b b
- issueFatal :: String -> IOStateArrow s b b
- issueExc :: String -> IOStateArrow s SomeException b
- setDocumentStatus :: Int -> String -> IOStateArrow s XmlTree XmlTree
- setDocumentStatusFromSystemState :: String -> IOStateArrow s XmlTree XmlTree
- documentStatusOk :: ArrowXml a => a XmlTree XmlTree
- errorOutputToStderr :: String -> IO ()

# Documentation

changeErrorStatus :: (Int -> Int -> Int) -> IOStateArrow s Int Int Source

clearErrStatus :: IOStateArrow s b b Source

reset global error variable

setErrStatus :: IOStateArrow s Int Int Source

set global error variable

getErrStatus :: IOStateArrow s XmlTree Int Source

read current global error status

setErrMsgStatus :: IOStateArrow s XmlTree XmlTree Source

raise the global error status level to that of the input tree

setErrorMsgHandler :: Bool -> (String -> IO ()) -> IOStateArrow s b b Source

set the error message handler and the flag for collecting the errors

sysErrorMsg :: IOStateArrow s XmlTree XmlTree Source

error message handler for output to stderr

errorMsgStderr :: IOStateArrow s b b Source

the default error message handler: error output to stderr

errorMsgCollect :: IOStateArrow s b b Source

error message handler for collecting errors

errorMsgStderrAndCollect :: IOStateArrow s b b Source

error message handler for output to stderr and collecting

errorMsgIgnore :: IOStateArrow s b b Source

error message handler for ignoring errors

getErrorMessages :: IOStateArrow s b XmlTree Source

if error messages are collected by the error handler for processing these messages by the calling application, this arrow reads the stored messages and clears the error message store

addToErrorMsgList :: IOStateArrow s XmlTree XmlTree Source

filterErrorMsg :: IOStateArrow s XmlTree XmlTree Source

filter error messages from input trees and issue errors

issueWarn :: String -> IOStateArrow s b b Source

generate a warnig message

issueErr :: String -> IOStateArrow s b b Source

generate an error message

issueFatal :: String -> IOStateArrow s b b Source

generate a fatal error message, e.g. document not found

issueExc :: String -> IOStateArrow s SomeException b Source

Default exception handler: issue a fatal error message and fail.

The parameter can be used to specify where the error occured

setDocumentStatus :: Int -> String -> IOStateArrow s XmlTree XmlTree Source

add the error level and the module where the error occured to the attributes of a document root node and remove the children when level is greater or equal to `c_err`. called by `setDocumentStatusFromSystemState` when the system state indicates an error

setDocumentStatusFromSystemState :: String -> IOStateArrow s XmlTree XmlTree Source

check whether the error level attribute in the system state is set to error, in this case the children of the document root are removed and the module name where the error occured and the error level are added as attributes with `setDocumentStatus` else nothing is changed

documentStatusOk :: ArrowXml a => a XmlTree XmlTree Source

check whether tree is a document root and the status attribute has a value less than `c_err`

errorOutputToStderr :: String -> IO () Source